printing: Set printer state correctly
authorMarek Kasik <mkasik@redhat.com>
Fri, 27 Feb 2015 15:48:40 +0000 (16:48 +0100)
committerMarek Kasik <mkasik@redhat.com>
Mon, 2 Mar 2015 09:51:07 +0000 (10:51 +0100)
Consider NULL printer state message as empty too.
Printer state IPP_PRINTER_STOPPED can be considered as paused state.

https://bugzilla.gnome.org/show_bug.cgi?id=743323

modules/printbackends/cups/gtkprintbackendcups.c

index 00df2e4190ef40d10e3a0d980548bbab5187f6d2..7cd38416c718cff8ef3c9bb3ef83d8ec3bde3a4a 100644 (file)
@@ -2482,7 +2482,7 @@ set_info_state_message (PrinterSetupInfo *info)
 {
   gint i;
 
-  if (info->state_msg && strlen (info->state_msg) == 0)
+  if (info->state_msg == NULL || strlen (info->state_msg) == 0)
     {
       gchar *tmp_msg2 = NULL;
       if (info->is_paused && !info->is_accepting_jobs)
@@ -2751,7 +2751,10 @@ create_cups_printer_from_avahi_data (AvahiConnectionTestData *data)
   info->printer_uri = data->printer_uri;
 
   if (data->got_printer_state)
-    info->state = data->printer_state;
+    {
+      info->state = data->printer_state;
+      info->is_paused = info->state == IPP_PRINTER_STOPPED;
+    }
 
   info->got_printer_type = data->got_printer_type;
   if (data->got_printer_type)